home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics Plus
/
Graphics Plus.iso
/
msdos
/
plotting
/
pcgplots
/
gpta.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-24
|
4KB
|
119 lines
void myError(const char * , const char * , int );
// forward refs
class Window;
class Scroller;
class FrameWindow;
class CGMWindow;
class WMetaWindow;
class FileObject;
class IndexObject;
class PageObject;
class cgmObject;
class cgmFile;
class cgmMetafile;
class cgmPicture;
class clearOutput;
class baseDisplay;
//typedefs
typedef Window * WindowPt;
typedef FrameWindow * FrameWindowPt;
typedef cgmObject * CgmObjectPt;
typedef CGMWindow * CgmWindowPt;
typedef WMetaWindow * WMetaWindowPt;
typedef FileObject * FileObjectPt;
typedef IndexObject * IndexObjectPt;
typedef PageObject * PageObjectPt;
typedef cgmFile * CgmFilePt;
typedef cgmPicture * CgmPicturePt;
typedef cgmMetafile * CgmMetafilePt;
typedef clearOutput * ClearOutputPt;
typedef baseDisplay * BaseDisplayPt;
typedef const LPSTR cStr;
enum Modes { READFILE, CREATEFILE };
// *** class FileObject
class FileObject
{
public:
static FileObjectPt ThisFileObject;
private:
char Path[128];
char Spec[128];
char Ext[20];
char *DialogMess;
int HFile;
OFSTRUCT OF;
WORD wAttr;
enum {FILE_SELECTED, NO_FILE_SELECTED};
public:
~FileObject( void )
{ if (HFile) _lclose(HFile);
if (DialogMess) delete DialogMess;
}
FileObject( void )
{ HFile = NULL; Spec[0] = '\0'; Path[0] = '\0'; Ext[0] = '\0';
DialogMess = NULL;
}
void DialogFileSetup(cStr Mess, cStr Path, cStr Spec, cStr Ext, WORD wAttr );
int GetHandle( void) { return HFile; }
const char *GetFileName(void){return (const char *)&OF.szPathName[0];}// { return &Spec[0]; }
void DialogFileInfo( );
BOOL OpenRead(HWND hWndParent);
BOOL OpenWrite( HWND hWndParent);
static BOOL GetNewChoice(HWND hDlg, enum Modes FileAction);
static BOOL FAR PASCAL FileOpenDlgProc (HWND hDlg, WORD message,
WORD wParam, LONG lParam);
static BOOL FAR PASCAL FileNewDlgProc (HWND hDlg, WORD message,
WORD wParam, LONG lParam);
}; // End of class FileObject
class cgmObject
{
private:
FileObjectPt file; // note, also held by cgmwindow
CgmFilePt cgm;
CgmWindowPt cgmWin;
CgmMetafilePt cgmMeta;
CgmPicturePt curPic; // current picture to be displayed
CgmPicturePt lastPic; // last picture displayed
WORD PicNum; // current picture #
WORD Pictures; // # of pictures
BOOL IsIndexed;
BOOL DidFullMeta;
HANDLE hMeta; // Windows metafile
HBITMAP hCompBit;
HDC hMemDC;
HBITMAP hOldBit;
public:
cgmObject(CgmWindowPt cgmWin, FileObjectPt fobj );
BOOL IsValidCgm(void) { if (cgmMeta) return TRUE; else return FALSE; }
BOOL IsSamePic(void) { if ( !lastPic || curPic == lastPic ) return TRUE;
else return FALSE; }
WORD IndexCgm();
WORD GetPicNum(void) {return PicNum;}
inline BOOL NextPageExists(void);
inline BOOL PrevPageExists(void);
inline void GetPageText( PSTR text)
{wsprintf((LPSTR)text,"PAGE %d", PicNum);}
void SetLastCur(void) { lastPic = curPic; }
void GetPictureText(PSTR text, void **picture);
BOOL GetSel( void **picture);
void SetSel(BOOL , void **picture);
BOOL PreviousPage(void);
BOOL NextPage(void);
BOOL NewPage(WORD page);
inline void ZapLastPic(void);
inline void ReadCurPic(void);
void DisplayCurPic(HWND, RECT *, Scroller *);
void GPlotInit(void );
void MakeClearText(FileObjectPt fobj );
void WriteMetaFile(FileObjectPt fobj);
void MakeBitmapMeta(HWND hWnd, RECT *rect, Scroller *sbars); //OBSOLETE
void MakeStar(HDC dev , HDC meta); //FOR TEST ONLY
~cgmObject(void);
}; // end of CgmObject class